#include <iostream>

#include <cstdio>
#include <assert.h>
#include <pthread.h>
#include <unistd.h>

using namespace std;

string fun()
{
    return "我是一个独立的方法";
}

// 新线程
void *thread_routine(void *arg)
{
    const char *name = (const char *)arg;
    while (true)
    {
        cout << "我是新线程, 我正在运行! 我的pid是:" << getpid() << " 我的名字是" << name << fun() << endl;
        sleep(2);
        fun();
    }
}

int main()
{
    pthread_t tid = 0;
    int n = pthread_create(&tid, NULL, thread_routine, (void *)"therad one");
    assert(0 == n);
    (void)n;

    // 主线程
    while (true)
    {
        char tidBuffer[64];
        snprintf(tidBuffer, sizeof(tidBuffer), "0x%x", tid);
        cout << "我是主线程, 我正在运行! 我的pid是:" << getpid() << " 创建线程的tid是:" << tidBuffer << fun() << endl;
        sleep(1);
        fun();
    }

    return 0;
}